package main

import (
	"fmt"
	"os"
	"time"

	"mongoscan/checks"
	"mongoscan/config"
	"mongoscan/report"
)

func main() {
	cfg, err := config.ParseFlags()
	if err != nil {
		fmt.Printf("参数错误: %v\n", err)
		os.Exit(1)
	}

	// 执行预检查
	if err := checks.Precheck(cfg); err != nil {
		fmt.Printf("预检查失败: %v\n", err)
		os.Exit(1)
	}

	// 收集状态信息
	startTime := time.Now()
	status, err := checks.CollectStatus(cfg)
	if err != nil {
		fmt.Printf("数据收集失败: %v\n", err)
		os.Exit(1)
	}
	fmt.Printf("数据收集完成, 耗时: %.2f秒\n", time.Since(startTime).Seconds())

	// 生成HTML报告
	if err := report.GenerateHTMLReport(status, cfg.OutputFile); err != nil {
		fmt.Printf("报告生成失败: %v\n", err)
		os.Exit(1)
	}
	fmt.Printf("报告已生成: %s\n", cfg.OutputFile)

}
